@@ -50,7 +50,13 @@ class AgentsController < ApplicationController |
||
50 | 50 |
agent.name ||= '(Untitled)' |
51 | 51 |
|
52 | 52 |
if agent.valid? |
53 |
- results = agent.dry_run! |
|
53 |
+ if event_payload = params[:event] |
|
54 |
+ dummy_agent = Agent.build_for_type('ManualEventAgent', current_user, name: 'Dry-Runner') |
|
55 |
+ dummy_agent.readonly! |
|
56 |
+ event = dummy_agent.events.build(user: current_user, payload: event_payload) |
|
57 |
+ end |
|
58 |
+ |
|
59 |
+ results = agent.dry_run!(event) |
|
54 | 60 |
|
55 | 61 |
render json: { |
56 | 62 |
log: results[:log], |
@@ -377,6 +377,19 @@ describe AgentsController do |
||
377 | 377 |
[users(:bob).agents.count, users(:bob).events.count, users(:bob).logs.count, agent.name, agent.updated_at] |
378 | 378 |
} |
379 | 379 |
end |
380 |
+ |
|
381 |
+ it "accepts an event" do |
|
382 |
+ sign_in users(:bob) |
|
383 |
+ agent = agents(:bob_website_agent) |
|
384 |
+ url_from_event = "http://xkcd.com/?from_event=1".freeze |
|
385 |
+ expect { |
|
386 |
+ post :dry_run, id: agent, event: { url: url_from_event } |
|
387 |
+ }.not_to change { |
|
388 |
+ [users(:bob).agents.count, users(:bob).events.count, users(:bob).logs.count, agent.name, agent.updated_at] |
|
389 |
+ } |
|
390 |
+ json = JSON.parse(response.body) |
|
391 |
+ expect(json['log']).to match(/^I, .* : Fetching #{Regexp.quote(url_from_event)}$/) |
|
392 |
+ end |
|
380 | 393 |
end |
381 | 394 |
|
382 | 395 |
describe "DELETE memory" do |